﻿ <html>
<title>Phân số</title>
<FORM background = "red" METHOD = POST ACTION="">	
<center><h1><b><font color="blue" size=20> phân số<hr width =30%></font></h1></u>
      <br>
   <b><i><font color= "blue">TS 1:</font></i></b>
   <INPUT  TYPE= "char" NAME ="a" SIZE="20" placeholder="tử số thứ 1">
   <b><i><font color= "blue">MS 1:</font></i></b>
   <INPUT  TYPE= "char" NAME ="b" SIZE="20" placeholder="mẫu số thứ 1!">
   <b><i><font color= "blue">TS 2:</font></i></b>
   <INPUT  TYPE= "char" NAME ="c" SIZE="20"placeholder= "tử số thứ 2!">
   <b><i><font color= "blue">MS 2:</font></i></b>
   <INPUT  TYPE= "char" NAME ="d" SIZE="20"placeholder= "mẫu số thứ 2!">
   <br><br>
   <input type="submit" value="Xử lý" name="Xử lý" onClick = "alert('Bạn đã click vào textbox');"/>
   <input type="reset"  value ="Xóa" name ="Xóa"/>
   <font color="blue" size="30">
   <br><br>
 <hr width =50%>
<?php
 if(isset($_POST["a"])&&isset($_POST["b"])&&isset($_POST["c"])&&isset($_POST["c"]))
     {
       $a=$_POST["a"];
	   $b=$_POST["b"];
	   $c=$_POST["c"];
	   $d=$_POST["d"]; 
  if($b==null||$a==null||$c==null||$d==null)
     {
         echo "rỗng";exit;
     }	
      $kt1=is_numeric($a);  // kiểm tra có là số hay ko?
      $kt2=is_numeric($b); 
	  $kt3=is_numeric($c);
	  $kt4=is_numeric($d);
   if($kt1!=1 ||$kt2!=1||$kt3!=1|| $kt4!=1 ||$b==0||$d==0)// mấy cái ràng buộc cho giá trị
     {
         echo " Sai";exit;
     }	
   	 
class ps // đây là class ps
{
      public $a;
	  public $b;
	  public $c;
      public $d;
    function ps($tuso_1,$mauso_1,$tuso_2,$mauso_2) // hàm dựng
    {
       
       //echo '<br>lớp "', __CLASS__, '" dc tạo.<br />'; 
        $this->a= $tuso_1;
          $this->b= $mauso_1;
		   $this->c= $tuso_2;
		     $this->d=$mauso_2;
    }
	
	  public function __destruct() // hàm hủy
    { 
      //  echo '<br> lớp "', __CLASS__, '" bị hủy.<br />'; 
    } 

    public function cong_2_ps()   // function hay là phương thức tính dtb
    {
	    echo "Tổng 2 phân số là : <br>"; echo ($this->a."/".$this->b)."+".($this->c."/".$this->d)."=";
		        
				if(is_float($this->a/$this->b)!=1 and is_float($this->c/$this->d)!=1)// nếu cả 2 ps có tử chia hết cho mẫu-> 2 ps chia goy cộng lại
                     { 
		                
						 echo ($this->a/$this->b)+($this->c/$this->d); echo "<br>";						 
                     }
				else if($this->b==$this->d)// nếu mẫu_1=mẫu_2  thì
				     {
					     if(($this->a+$this->c)%($this->b)==0 )  //nếu tử chia hết cho mẫu thì xuất ra (tử_1+tử_2)/ mẫu
						    { 						         
								 echo ($this->a+$this->c)/$this->b;echo "<br>";
						    }
						 elseif($this->a==$this->c)   // nếu tử_1=tử_2 thì nữa thì mình xuất ra phần tử giữ nguyên, mẫu/2
						    {
							      echo $this->a."/".($this->b/2);
							}
					   else 
						    {						       
								echo ($this->a+$this->c)."/".$this->b; // ngược lại giữ nguyên
							}
					  }					                       				
			    else { echo (($this->a*$this->d)+($this->b*$this->c))."/".($this->b*$this->d);  }
	 }
	function tru_2_ps()
	{
		echo " Hiệu của 2 phân số  :<br> $this->a/$this->b-$this->c/$this->d =  ";
		if($this->a==$this->c)
			echo $this->b-$this->d."/".$this->a;
			else
			echo ($this->a)*($this->d)-($this->b)*($this->c)."/".$this->b*$this->d;
	}
	function nhan_2_ps()
	{
		echo "Tích của 2 phân số   :<br>$this->a/$this->b * $this->c/$this->d =   ";
		if(is_float(($this->a*$this->c)/($this->b*$this->d))!=1)
		    {
			    echo ($this->a*$this->c)/($this->b*$this->d);
			}
			else 
			{
			    echo ($this->a*$this->c)."/".($this->b*$this->d);
			}			
	}
	function chia_2_ps()
	{
		echo "Thương của 2 phân số   :<br>$this->a/$this->b / $this->c/$this->d =   ";
		if(is_float(($this->a*$this->d)/($this->b*$this->c))!=1)
		    {
			    echo ($this->a*$this->d)/($this->b*$this->c);
			}
			else 
			{
			    echo ($this->a*$this->d)."/".($this->b*$this->c);
			}			
	}
	}	 
}	  
$phanso = new ps($a,$b,$c,$d);// khởi tạo,truyền tham số 
$phanso->cong_2_ps(); 
echo "<br />";
$phanso->tru_2_ps();
echo "<br>";
$phanso->nhan_2_ps();
echo "<br>";
$phanso->chia_2_ps();
?></form>
</html>
